Option 1:
#include <stdbool.h>
Option 2:
typedef enum { false, true } bool;
Option 3:
typedef int bool;
enum { false, true };
Option 4:
typedef int bool;
#define true 1
#define false 0
Explanation:
Option 1 will work only if you use C99 (or newer) and its the "standard way" to do it.
Choose this if possible
Options 2,3 and 4 will have practice the same identical behavior. #2 and #3 don't use
#defines though which in my opinion is better.
int a = 4;
int b = 5;
bool result;
result = a < b; // true
result = a > b; // false
result = a <= 4; // a smaller or equal to 4 - true
result = b >= 6; // b bigger or equal to 6 - false
result = a == b; // a equal to b - false
result = a != b; // a is not equal to b - true
result = a > b || a < b; // Logical or - true
result = 3 < a && a < 6; // Logical and - true
result = !result; // Logical not - false